/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package db;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import org.jasypt.util.text.BasicTextEncryptor;

/**
 *
 * @author avasquez
 */
public class PropiedadesBD {

    static Properties prop = new Properties();
    static String ip_db;
    static String puerto_db;
    static String nombre_db;
    static String usuario_db;
    static String coneccion_db;
    static String password_db;
    static boolean con_skin;
    static String skin_class;

    public static boolean cargar() {
        boolean ret = true;
        try {
            File archivo = new File("config.properties"); // Abro

            prop.load(new FileInputStream(archivo));

            BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
            textEncryptor.setPassword("clgv");
            setIp_db(PropiedadesBD.get("ip_db"));
            setPuerto_db(PropiedadesBD.get("puerto_db"));
            setNombre_db(PropiedadesBD.get("nombre_db"));
            setUsuario_db(PropiedadesBD.get("usuario_db"));
            setConeccion_db(PropiedadesBD.get("coneccion_db"));
            setPassword_db(textEncryptor.decrypt(PropiedadesBD.get("password_db")));
            setCon_skin(Boolean.parseBoolean(PropiedadesBD.get("con_skin")));
            setSkin_class(PropiedadesBD.get("skin_class"));
        } catch (Exception e) {
            System.out.println(e);
            ret = false;
        }
        return ret;
    }

    public static void guardar() {
        FileOutputStream fos = null;
        try {
            fos = new FileOutputStream(new File("clgv.properties"));
            prop.setProperty("ip_db", getIp_db());
            prop.setProperty("puerto_db", getPuerto_db());
            prop.setProperty("nombre_db", getNombre_db());
            prop.setProperty("usuario_db", getUsuario_db());
            prop.setProperty("coneccion_db", getConeccion_db());
            prop.setProperty("password_db", getPassword_db());
            prop.setProperty("con_skin", String.valueOf(isCon_skin()));
            prop.setProperty("skin_class", getSkin_class());
            prop.store(fos, "");
        } catch (IOException ex) {
            System.out.println(ex);
        } finally {
            try {
                fos.close();
            } catch (IOException ex) {
                System.out.println(ex);
            }
        }
    }

    public static String getPuerto_db() {
        return puerto_db;
    }

    public static void setPuerto_db(String puerto) {
        PropiedadesBD.puerto_db = puerto;
    }

    public static String getConeccion_db() {
        return coneccion_db;
    }

    public static void setConeccion_db(String coneccion_db) {
        PropiedadesBD.coneccion_db = coneccion_db;
    }

    public static String getIp_db() {
        return ip_db;
    }

    public static void setIp_db(String ip_db) {
        PropiedadesBD.ip_db = ip_db;
    }

    public static String getNombre_db() {
        return nombre_db;
    }

    public static void setNombre_db(String nombre_db) {
        PropiedadesBD.nombre_db = nombre_db;
    }

    public static String getUsuario_db() {
        return usuario_db;
    }

    public static void setUsuario_db(String usuario_db) {
        PropiedadesBD.usuario_db = usuario_db;
    }

    public static String getPassword_db() {
        return password_db;
    }

    public static void setPassword_db(String password_db) {
        PropiedadesBD.password_db = password_db;
    }

    public static boolean isCon_skin() {
        return con_skin;
    }

    public static void setCon_skin(boolean con_skin) {
        PropiedadesBD.con_skin = con_skin;
    }

    public static String getSkin_class() {
        return skin_class;
    }

    public static void setSkin_class(String skin_class) {
        PropiedadesBD.skin_class = skin_class;
    }

    public static String get(String propiedad) {
        String retorno = "";
        try {
            if (prop == null) {
                retorno = "";
            }
            retorno = prop.getProperty(propiedad, retorno);
        } catch (Exception e) {
            System.out.println(e);
        }
        return retorno;
    }

    public static void main(String[] args) {
        PropiedadesBD.cargar();
        System.out.println(PropiedadesBD.getPassword_db());
        System.out.println(PropiedadesBD.getConeccion_db());
        System.out.println(PropiedadesBD.getNombre_db());
        System.out.println(PropiedadesBD.getUsuario_db());
        System.out.println(PropiedadesBD.getIp_db());
        System.out.println(PropiedadesBD.isCon_skin());
        System.out.println(PropiedadesBD.getSkin_class());
        PropiedadesBD.setIp_db("127.0.0.3");
        PropiedadesBD.guardar();
    }

    static boolean cargar(String string) {
        boolean ret = true;
        try {
            File archivo = new File(string); // Abro

            prop.load(new FileInputStream(archivo));

            BasicTextEncryptor textEncryptor = new BasicTextEncryptor();
            textEncryptor.setPassword("clgv");
            setIp_db(PropiedadesBD.get("ip_db"));
            setPuerto_db(PropiedadesBD.get("puerto_db"));
            setNombre_db(PropiedadesBD.get("nombre_db"));
            setUsuario_db(PropiedadesBD.get("usuario_db"));
            setConeccion_db(PropiedadesBD.get("coneccion_db"));
            setPassword_db(textEncryptor.decrypt(PropiedadesBD.get("password_db")));
            setCon_skin(Boolean.parseBoolean(PropiedadesBD.get("con_skin")));
            setSkin_class(PropiedadesBD.get("skin_class"));

        } catch (Exception e) {
            System.out.println(e);
            ret = false;
        }
        return ret;
    }
}